def find_subtext_and_replace(main_text, sub_text, replacement_text):
    # 移除小文本中的所有空白字符
    stripped_sub_text = ''.join(sub_text.split())

    # 查找小文本在大文本中的所有可能匹配，考虑空格
    import re
    pattern = re.compile(r"\s*".join(stripped_sub_text))  # 创建用于匹配的正则表达式，考虑空格
    match = pattern.search(main_text)

    if not match:
        return main_text, "小文本在大文本中未找到。"

    # 在找到的位置进行替换
    start, end = match.span()
    replaced_text = main_text[:start] + replacement_text + main_text[end:]

    return replaced_text


def find_substring_context(substring, text, n=25):
    # 初始化存储结果的列表
    contexts = []

    # 获取所有子字符串出现的起始索引
    start = 0
    while True:
        index = text.find(substring, start)
        if index == -1:
            break

        # 计算上下文的起始和结束索引，确保索引不会超出文本范围
        start_context = max(0, index - n)  # 获取子字符串前n个字符
        end_context = min(len(text), index + len(substring) + n)  # 获取子字符串后n个字符

        # 提取上下文并添加到结果列表
        context = text[start_context:end_context]
        contexts.append(context)

        # 更新搜索起点
        start = index + 1

    return contexts
